package com.qfedu.demo;

import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

@Component
//@Scope("prototype") //自动装配中定义bean的作用域方式一
//@Scope(scopeName = "prototype") //自动装配中定义bean的作用域方式二
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON) //自动装配中定义bean的作用域方式三
@Lazy// 懒加载只能与单例模式结合使用（启动应用时bean对象不会立即创建，只用在获取容器中的bean时才创建）
public class Notepad2 {
    public Notepad2() {
        super();
        System.out.println("Notepad2的构造函数。。"+ this.toString());
    }
    @PostConstruct  //初始化spring容器(用到spring容器)的时候自动调用
    public void init1(){
        System.out.println("Notepad2的初始方法。。");
    }

    @PreDestroy   //spring容器销毁的时候自动调用
    public void destroy1(){
        System.out.println("Notepad2的销毁方法。。");
    }
}
